package com.example.LinkedListConstructor;

import java.util.LinkedList;
// LinkedList无参构造方法
public class LinkedListConstructionExample1 {
    public static void main(String[] args) {
        // 使用无参构造方法创建空的LinkedList
        // 创建一个String类型的链表
        LinkedList<String> fruits = new LinkedList<>();

        // 向链表中添加元素
        fruits.add("苹果");    // 添加第一个元素
        fruits.add("香蕉");    // 添加第二个元素
        fruits.add("橙子");    // 添加第三个元素

        // 打印链表内容
        System.out.println("水果链表: " + fruits);
        // 输出: 水果链表: [苹果, 香蕉, 橙子]

        // 在链表开头添加元素
        fruits.addFirst("葡萄");  // 在链表头部添加元素
        System.out.println("在开头添加葡萄后: " + fruits);
        // 输出: 在开头添加葡萄后: [葡萄, 苹果, 香蕉, 橙子]

        // 在链表末尾添加元素
        fruits.addLast("西瓜");   // 在链表尾部添加元素
        System.out.println("在末尾添加西瓜后: " + fruits);
        // 输出: 在末尾添加西瓜后: [葡萄, 苹果, 香蕉, 橙子, 西瓜]

        // 添加null元素
        fruits.add(null);
        System.out.println("添加null元素后: " + fruits);
        // 输出：添加null元素后: [葡萄, 苹果, 香蕉, 橙子, 西瓜, null]

        // 遍历链表，处理null值
        for(int i = 0; i < fruits.size(); i++) {
            String element = fruits.get(i); // 获取指定位置的元素
            if(element == null) {
                System.out.println("位置 " + i + ":这是null值");
            } else {
                System.out.println("位置 " + i + ": " + element);
            }
        }

        /*输出：
            位置 0: 葡萄
            位置 1: 苹果
            位置 2: 香蕉
            位置 3: 橙子
            位置 4: 西瓜
            位置 5:这是null值
        */

    }
}